Method and system for data transmission in a multiple input multiple output (MIMO) system

ABSTRACT

A method for data transmission in a multiple input multiple output (MIMO) system. The method for data transmission includes receiving multiple input data streams and performing low density parity check (LDPC) encoding of the input data streams utilizing a parity check matrix. The parity check matrix comprises a plurality of sub-parity check matrices for encoding respective associated ones of the input data streams and performing space time encoding for transmitting the LDPC encoded input data streams over a plurality of antennas. The performing of the LDPC encoding of the input data streams includes generating one or more connection matrices, each connection matrix for injecting information of one of the input data streams into the encoding of another one of the input data streams. Each connection matrix is a zero matrix if a lowest parity check protection level based on the sub-parity check matrix for the one of the input data streams is equal to or lower than an assigned parity check protection level for the one input data stream, and a non zero matrix otherwise.

PRIORITY CLAIM

The present application is a National Phase entry of PCT Application No.PCT/SG2007/000332, filed Oct. 1, 2007, which claims priority from PCTApplication No. PCT/SG2006/000306, filed Oct. 18, 2006, the disclosuresof which are hereby incorporated by reference herein in their entirety.

FIELD OF INVENTION

The invention relates broadly to a method for data transmission in amultiple input multiple output (MIMO) system, to a transmitter in a MIMOsystem, to a computer readable data storage medium having stored thereoncomputer code means for instructing a MIMO system to execute a methodfor data transmission in the MIMO system, to a method for processingreceived data in a MIMO system, to a receiver in a MIMO system and to acomputer readable data storage medium having stored thereon computercode means for instructing a MIMO system to execute a method forprocessing received data in the MIMO system.

BACKGROUND

Wireless communication systems have been used to carry voice traffic andlow data rate non-voice traffic. Current wireless communication systemscan also carry high data rate multimedia traffic, such as video, data,and other types of traffic. Multimedia Broadcast and Multicast Service(MBMS) channels may be used to transmit streaming applications, such asradio broadcast, television broadcast, movies, and other types of audioor video contents.

The multimedia broadcast multicast service is defined in the ThirdGeneration Partnership Project (3GPP) Release 6 documentation. Thestandard TS22.146 defines the high level service requirements of theMBMS, and the standard TS22.246 defines typical service scenarios. MBMSservices allow user equipment (UE) such as mobile telephones or othermobile terminals to receive services from service providers via anetwork. MBMS is a packet service (PS) domain service for transferringmultimedia data such as audio, pictures, video, etc, to a plurality ofterminals using a unidirectional point-to-multipoint bearer service. Theservices are generally delivered in a packet format, currently in theform of IP Internet protocol (IP) packets. The services are typicallyprovided by the service providers to a radio network controller thatcontrols how the services are delivered to mobile terminals within thenetwork. The radio network controller typically schedules thetransmission of services according to network resources and otherfactors.

As MBMS is a multimedia service, multiple services of different Qualityof Service (QoS) or multiple streams of different QoS in a same servicemay be provided to a single UE or to different UEs. In addition, MBMStransmission mechanisms are typically needed to support variable sourcedata-rates. In other words, source data may vary in transmission ratesand bit error rates (BERs).

Since the MBMS channel is unidirectional, a transmitting base stationcannot acknowledge any reception error at a UE. Therefore, means ofinformation protection is desirable.

For consideration of information protection, transmission of a modulatedinformation signal over a wireless communication channel requiresselection of appropriate methods for protecting the information in themodulated signal. Such methods may comprise, for example, encoding,symbol repetition, interleaving, and other known methods.

For broadcast/multicast services, the characteristics and requirementsof the broadcast/multicast services are specified by 3GPP MBMS and therelated broadcast/multicast service layer functions. Simultaneousdistribution of different content data may be required in a MBMS serviceand simultaneous reception of more than one MBMS service for oneterminal may be required. MBMS transport services may vary, forinstance, in QoS parameters. In such cases, unequal error protectionmechanisms (UEP) are typically required to support various different QoSfor the high data rate communication for MBMS services in wirelesssystems. In the following description, data with higher qualityrequirement and/or lower rate requirement are defined as the higherpriority data and data with lower quality requirement and/or higher raterequirement are defined as the lower priority data.

Two types of methods have been applied for UEP. One type comprisesapplying a more powerful conventional error-correcting code to thehigher priority data. The other type comprises using non-uniformlyspaced modulation constellation or hierarchical modulation to provideunequal protection for the data with different priorities. U.S. Pat. No.5,105,442 describes coded modulation that may achieve bothpower-efficiency and bandwidth-efficiency by combining the above twomethods.

U.S. Pat. No. 5,214,656 describes combining the coded modulation with atime division multiplexing scheme. Signals with different priorities areseparately coded and modulated. The modulated signals with differentpriorities are then mapped to different time-slots.

The above mentioned methods may provide good performance of unbalanceddata transmission but have limited capacity due to their single transmitantenna configuration.

In current technologies, Multiple Input Multiple Output (MIMO)communication systems employ multiple antennas at a transmitter and/or areceiver to improve coverage, quality and capacity. Therefore, onepossible way to increase the system capacity of a MBMS system is to usemultiple antennas to perform space-time (ST) processing. The concept ofcombining space-time processing with conventional UEP techniques may beemployed to achieve more capacity and better quality.

One method of UEP, described in C. H. Kuo, et al., ‘Robust videotransmission over wideband wireless channel using space-time coded OFDMsystem’, WCNC 2002, vol. 3. March 2002, comprises concatenating forwarderror correction (FEC) with ST code in MIMO systems. In this method,more robustness is provided to the data with higher priority by adoptingmore powerful FEC. However, the embedded ST code does not providedifferentiation between data with different priorities. Therefore, oneproblem that may arise is that this kind of concatenation with theunified space-time processing cannot provide further differentiationbetween data with different priorities and thus, limited protectionlevels can be supported. Another problem is that it is practicallycomplex to implement this method since for each input data, a space timecoder is separately applied.

Yet other methods based on combining different space-time technologieshave been proposed for UEP in MIMO systems. See for example, MuhammadFarooq Sabir, Robert W. Heath Jr, and Alan C. Bovik “An unequal errorprotection scheme for multiple input multiple output systems”, IEEEAsilomar Conference on Signals, Systems and Computers, vol 1, pp.575-579, November 2002; and, C. H. Kuo, et al., “Embedded space-timecoding for wireless broadcast with heterogeneous receivers”, Globecom2000, vol 21, November, 2000. However, since these proposed systemsrequire a change of the coding structure of the space time coder forevery different protection requirements and, can only provide specificrates and specific protection levels when the space-time coders areselected, these systems are low in flexibility and are highly complex.

For concatenation codes used in channel coding and space-time coding,turbo codes using an iterative decoding technique are provided as ahigh-reliable channel coding technique for third generation wirelesscommunication in the International Mobile Telecommunications-2000(IMT-2000) standard. The turbo codes may perform the coding operation byusing parallel concatenated recursive systematic convolutional (RSC)codes and perform the decoding operation using the iterative decodingtechnique. In addition, the turbo codes represent superior performanceapproaching the so-called Shannon's limitation with respect to a BER ifan interleaver size is made larger and the iterative decoding issufficiently performed. However, if the turbo codes are employed, oneproblem that may arise is that the number of operations may increaseresulting in high complexity. Another problem that may arise is that asboth the size of the interleaver and the number of iterative decodingoperations increase, a time delay may occur making a real time processdifficult.

Beyond 3G, fourth generation wireless communication systems are beingdeveloped in order to provide better voice and high-speed multimediaservices. In such systems, a channel coding technique called low densityparity check (LDPC) code is being used. The LDPC code has superiorcoding characteristics as compared to conventional turbo codes, withrespect to complexity and performance. The LDPC code is typically alinear block code in which most elements of a parity check matrix (H)are “0”. It has been discovered that the LDPC code can provide superiorperformance if, e.g., a probabilistic coding technique of the LDPC isused.

The LDPC code is defined by a random parity check matrix H in which thenumber of element “1” in the matrix is sparsely distributed and the restof the elements are all zeros. The parity check matrix H is typically amatrix for determining if coding is correctly performed with regard to areception signal. For example, if a value obtained through multiplying acoded reception signal by the parity check matrix H is “0”, there is noerror in the coding. In the following description, row weight (or rowdegree) is defined by the number of 1's in a row of the parity checkmatrix H, and column weight (or column degree) is defined by the numberof 1's in a column. Unless otherwise specified, degree refers to columndegree in the following description.

The LDPC code may be described by both a matrix and a factor graph. TheLDPC code may be decoded in a factor graph using an iterative decodingalgorithm based on a sum-product algorithm. The decoder, employing theLDPC code, is less complex than a decoder using turbo code. Furthermore,a parallel processing decoder can be easily embodied. Therefore, aspace-time encoder/decoder may have superior channel coding/decodingperformance if the space-time encoder/decoder performs coding/decodingoperations using the LDPC code.

There are current methods used for UEP by implementing LDPC codes forchannel coding. These methods typically map information bits and paritybits to different parts of a codeword by employing a property thatdifferent connection degrees of data nodes can provide different errorprotection. See for example, Xiumei Yang, et. al, “New research onunequal error protection (UEP) property of Irregular LDPC codes”,Consumer Communications and Networking Conference, 2004. First IEEE 5-8Jan. 2004 Page(s):361-363, and Poulliat C., Declercq D., Fijalkow I.,Optimization of LDPC codes for UEP channels, in Proc. IEEE InternationalSymposium on Information Theory (ISIT'04), p. 450, Chicago, Ill., USA,June 2004. For such methods, application of the LDPC codes is typicallyrestricted because construction of the parity check matrix structure ispractically difficult. Further, the performance diversity achieved fordifferent level bits is typically low since different code rates cannotbe realized for different information bits.

Further, “New results on unequal error protection using LDPC codes”,IEEE Communication letters, vol. 10, no. 1, January 2006 describes yetanother LDPC-based method that relates to combining two Tanner graphs.However, there is no further explanation in the document on how toconstruct a sub-block to generate a usable parity check matrix.

In view of the above, transmission techniques that may simultaneouslysupport various error protection requirements in high rate datatransmission, e.g. MBMS services, at high system flexibility and lowimplementation complexity are desired.

Hence, there exists a need for a method and system for data transmissionin a multiple input multiple output (MIMO) system to address at leastone of the above problems.

SUMMARY

In accordance with a first aspect of the present invention, there isprovided a method for data transmission in a multiple input multipleoutput (MIMO) system, the method comprising receiving multiple inputdata streams; performing low density parity check (LDPC) encoding of theinput data streams utilising a parity check matrix, wherein the paritycheck matrix comprises a plurality of sub-parity check matrices forencoding respective associated ones of the input data streams andperforming space time encoding for transmitting the LDPC encoded inputdata streams over a plurality of antennas; wherein the performing of theLDPC encoding of the input data streams comprises generating one or moreconnection matrices, each connection matrix for injecting information ofone of the input data streams into the encoding of another one of theinput data streams, and wherein said each connection matrix is a zeromatrix if a lowest parity check protection level based on the sub-paritycheck matrix for said one of the input data streams is equal to or lowerthan an assigned parity check protection level for said one input datastream, and a non zero matrix otherwise.

The multiple input data streams may comprise M input streams of Mdifferent classes, and the parity check matrix may have M layers, eachlayer of the parity check matrix corresponding to one of the M classes.

Each connection matrix may link two of the M layers such that thecorrelation information between the two layers is injected during theLDPC encoding.

For each connection matrix, if the assigned parity check protectionlevel is k levels higher than the lowest parity check protection level,said each connection matrix may be generated using the steps ofproviding a matrix

${C^{(k)} = \left\lbrack {{I_{m}^{({2{({k - 1})}})}{I_{m}^{({{2{({k - 1})}} + 1})}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({{2{({k - 1})}} + {\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack},$where m=r_(i), l=n_(i), r_(i) is a number of parity check bits of saidone of the input data streams and n_(i) is a codeword length of said oneof the input data streams and I_(m) ^((t)) is a t-column left shiftoperation of an identity matrix I_(m); denoting C_(k)=C^((k))[:,1:l];denoting C′_(i,j)=C₁+C₂+ . . . +C_(k) and downshifting C′_(i,j) by (i−1)rows to obtain said each connection matrix.

The parity check matrix may be a block-wise low triangular matrix, withthe sub-parity check matrices located as blocks along a main diagonal ofthe parity check matrix.

The connection matrices may be located as blocks below the main diagonalof the parity check matrix, with blocks above the main diagonal beingzero matrices.

In accordance with a second aspect of the present invention, there isprovided a transmitter in a multiple input multiple output (MIMO)system, the transmitter comprising one or more input units for receivingmultiple input data streams; a low density parity check (LDPC) encoder;a spatial mapping unit; wherein the LDPC encoder performs LDPC encodingof the input data streams utilising a parity check matrix and the paritycheck matrix comprises a plurality of sub-parity check matrices forencoding respective associated ones of the input data streams and thespatial mapping unit performs space time encoding for transmitting theLDPC encoded input data streams over a plurality of antennas; whereinfor the performing of the LDPC encoding of the input data streams, theLDPC encoder generates one or more connection matrices, each connectionmatrix for injecting information of one of the input data streams intothe encoding of another one of the input data streams, and wherein saideach connection matrix is a zero matrix if a lowest parity checkprotection level based on the sub-parity check matrix for said one ofthe input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.

The multiple input data streams may comprise M input streams of Mdifferent classes, and the parity check matrix may have M layers, eachlayer of the parity check matrix corresponding to one of the M classes.

Each connection matrix may link two of the M layers such that thecorrelation information between the two layers is included during theLDPC encoding.

For each connection matrix, if the assigned parity check protectionlevel is assigned to be k levels higher than the lowest parity checkprotection level, the LDPC encoder may generate said each connectionmatrix using the steps of providing a matrix

${C^{(k)} = \left\lbrack {{I_{m}^{({2{({k - 1})}})}{I_{m}^{({{2{({k - 1})}} + 1})}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({{2{({k - 1})}} + {\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack},$where m=r_(i), l=n_(i), r_(i) is a number of parity check bits of saidone of the input data streams and n_(i) is a codeword length of said oneof the input data streams and I_(m) ^((t)) is a t-column left shiftoperation of an identity matrix I_(m); denoting C_(k)=C^((k))[:,1:l];denoting C_(i,j)*=C₁+C₂+ . . . +C_(k); and downshifting C′_(i,j) by(i−1) rows to obtain said each connection matrix.

The parity check matrix may be a block-wise low triangular matrix, withthe sub-parity check matrices located as blocks along a main diagonal ofthe parity check matrix.

The connection matrices may be located as blocks below the main diagonalof the parity check matrix, with blocks above the main diagonal beingzero matrices.

In accordance with a third aspect of the present invention, there isprovided a computer readable data storage medium having stored thereoncomputer code means for instructing a multiple input multiple output(MIMO) system to execute a method for data transmission in the MIMOsystem, the method comprising receiving multiple input data streams;performing low density parity check (LDPC) encoding of the input datastreams utilising a parity check matrix, wherein the parity check matrixcomprises a plurality of sub-parity check matrices for encodingrespective associated ones of the input data streams and performingspace time encoding for transmitting the LDPC encoded input data streamsover a plurality of antennas; wherein the performing of the LDPCencoding of the input data streams comprises generating one or moreconnection matrices, each connection matrix for injecting information ofone of the input data streams into the encoding of another one of theinput data streams, and wherein said each connection matrix is a zeromatrix if a lowest parity check protection level based on the sub-paritycheck matrix for said one of the input data streams is equal to or lowerthan an assigned parity check protection level for said one input datastream, and a non zero matrix otherwise.

In accordance with a fourth aspect of the present invention, there isprovided a method for processing received data streams in a multipleinput multiple output (MIMO) system, the method comprising receivingdata streams via a plurality of receive antennas; performing space timedecoding on the received data streams; and performing low density paritycheck (LDPC) decoding of the received data streams utilising a paritycheck matrix for decoding the data streams, wherein the parity checkmatrix comprises a plurality of sub-parity check matrices for decodingrespective associated ones of the received data streams; wherein theperforming of the LDPC decoding of the received data streams comprisesusing one or more connection matrices, each connection matrix forproviding information of one of the received data streams for decodingof another one of the received data streams, and wherein said eachconnection matrix is a zero matrix if a lowest parity check protectionlevel based on the sub-parity check matrix for said one of the inputdata streams is equal to or lower than an assigned parity checkprotection level for said one input data stream, and a non zero matrixotherwise.

The method may further comprise using a sum-product method for decodingthe received data streams.

In accordance with a fifth aspect of the present invention, there isprovided a receiver in a multiple input multiple output (MIMO) system,the receiver comprising a plurality of receive antennas for receivingdata streams; a spatial mapping decoder for performing space timedecoding on the received data streams; and a low density parity check(LDPC) decoder for decoding the received data streams utilising a paritycheck matrix for decoding the data streams, wherein the parity checkmatrix comprises a plurality of sub-parity check matrices for decodingrespective associated ones of the received data streams; wherein for theperforming of the LDPC decoding of the received data streams, the LDPCdecoder uses one or more connection matrices, each connection matrix forproviding information of one of the received data streams for decodingof another one of the received data streams, and wherein said eachconnection matrix is a zero matrix if a lowest parity check protectionlevel based on the sub-parity check matrix for said one of the inputdata streams is equal to or lower than an assigned parity checkprotection level for said one input data stream, and a non zero matrixotherwise.

The LDPC decoder may comprise one or more sum-product decoders.

In accordance with a sixth aspect of the present invention, there isprovided a computer readable data storage medium having stored thereoncomputer code means for instructing a multiple input multiple output(MIMO) system to execute a method for processing received data streamsin the MIMO system, the method comprising receiving data streams via aplurality of receive antennas; performing space time decoding on thereceived data streams; and performing low density parity check (LDPC)decoding of the received data streams utilising a parity check matrixfor decoding the data streams, wherein the parity check matrix comprisesa plurality of sub-parity check matrices for decoding respectiveassociated ones of the received data streams; wherein the performing ofthe LDPC decoding of the received data streams comprises using one ormore connection matrices, each connection matrix for providinginformation of one of the received data streams for decoding of anotherone of the received data streams, and wherein said each connectionmatrix is a zero matrix if a lowest parity check protection level basedon the sub-parity check matrix for said one of the input data streams isequal to or lower than an assigned parity check protection level forsaid one input data stream, and a non zero matrix otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be better understood and readilyapparent to one of ordinary skill in the art from the following writtendescription, by way of example only, and in conjunction with thedrawings, in which:

FIG. 1 is a schematic block diagram broadly illustrating a wirelesscommunication system in an example implementation.

FIG. 2 is a schematic block diagram illustrating a transmitter.

FIG. 3 is a schematic block diagram illustrating a receiver.

FIG. 4 is a block diagram illustrating a layer space-time (ST) lowdensity parity check (LDPC) encoder unit.

FIG. 5 is a block diagram illustrating a ST LDPC iterative decodingunit.

FIG. 6 illustrates a layered structure of a parity check matrix of aLDPC code used in an encoder.

FIG. 7 is a schematic diagram illustrating a sample layered LDPC code.

FIG. 8( a) is an example parity check matrix of the LDPC code of FIG. 7.

FIG. 8( b) is another example parity check matrix of the LDPC code ofFIG. 7.

FIGS. 9( a) to 9(c) illustrate an example parity check matriximplementing a connection matrix generation rule.

FIG. 10 is a block diagram illustrating a modulation/symbol mappingunit.

FIGS. 11( a) to 11(c) are I-branch/Q-branch tables for illustratingexamples of logical signal mapping and combining ofsystematic/information and parity data.

FIG. 12 is a flowchart illustrating a method for data transmission in amultiple input multiple output (MIMO) system.

FIG. 13 is a flowchart illustrating a method for processing receiveddata streams in a multiple input multiple output (MIMO) system.

FIG. 14 is a schematic diagram illustrating a protocol architectureimplementing Multimedia Broadcast and Multicast Service (MBMS) services.

DETAILED DESCRIPTION

Some portions of the description which follows are explicitly orimplicitly presented in terms of algorithms and functional or symbolicrepresentations of operations on data within a computer memory. Thesealgorithmic descriptions and functional or symbolic representations arethe means used by those skilled in the data processing arts to conveymost effectively the substance of their work to others skilled in theart. An algorithm is here, and generally, conceived to be aself-consistent sequence of steps leading to a desired result. The stepsare those requiring physical manipulations of physical quantities, suchas electrical, magnetic or optical signals capable of being stored,transferred, combined, compared, and otherwise manipulated.

Unless specifically stated otherwise, and as apparent from thefollowing, it will be appreciated that throughout the presentspecification, discussions utilizing terms such as “scanning”,“calculating”, “determining”, “replacing”, “generating”, “initializing”,“outputting”, or the like, refer to the action and processes of acomputing system, or similar electronic device, that manipulates andtransforms data represented as physical quantities within the computingsystem into other data similarly represented as physical quantitieswithin the computing system or other information storage, transmissionor display devices.

The present specification also discloses an apparatus for performing theoperations of the methods. Such apparatus may be specially constructedfor the required purposes, or may comprise a general purpose computer orother devices selectively activated or reconfigured by a computerprogram stored in the computer. The algorithms presented herein are notinherently related to any particular computer or other apparatus.Various general purpose machines may be used with programs in accordancewith the teachings herein. Alternatively, the construction of morespecialized apparatus to perform the required method steps may beappropriate.

In addition, the present specification also implicitly discloses acomputer program, in that it would be apparent to the person skilled inthe art that the individual steps of the method described herein may beput into effect by computer code. The computer program is not intendedto be limited to any particular programming language and implementationthereof. It will be appreciated that a variety of programming languagesand coding thereof may be used to implement the teachings of thedisclosure contained herein. Moreover, the computer program is notintended to be limited to any particular control flow. There are manyother variants of the computer program, which can use different controlflows without departing from the spirit or scope of the invention.

Furthermore, one or more of the steps of the computer program may beperformed in parallel rather than sequentially. Such a computer programmay be stored on any computer readable medium. The computer program whenloaded and executed on a general-purpose computer effectively results inan apparatus that implements the steps of the preferred method.

To establish a MBMS service, typically, a core network CN transmits aMBMS context establishment request labelled REQ to a radio networkcontroller RNC1 and the radio network controller RNC1 returns a MBMScontext establishment response labelled RESP. The request typicallyincludes MBMS parameters QoS. The radio network controller RNC1 thenestablishes the MBMS context within the RNC for the respective MBMSservice. The RNC may establish a MBMS data bearer with the CN before thenotification phase or after the notification phase. The RNC typicallydetermines how the MBMS service is supplied across the network, and inparticular whether the service is delivered from a single cell ormultiple cells.

FIG. 14 is a schematic diagram illustrating a protocol architecture 1400implementing Multimedia Broadcast and Multicast Service (MBMS) services.A protocol stack according to 3GPP typically comprises a plurality oflayers, beginning at a physical layer PHY 1402 which represents thesignalling link, a medium access control (MAC) protocol layer 1404, aradio link control (RLC) protocol layer 1406 and a packet dataconvergence protocol (PDCP) layer 1408. The 3GPP protocol stack mayinclude a number of other layers and typically, only the above layersare used for delivery of MBMS services.

The PDCP layer 1408 exists in a user plane for services from the PSdomain. Services offered by the PDCP can be called radio bearers andPDCP provides the header compression services. PDCP compresses redundantprotocol information at a transmitting entity and decompresses at areceiving entity. PDCP also transfers user data that is received in theform of PDCP Service Data Units (SDUs) from the non-access stratum andforwards them to the RLC entity, and vice versa.

The RLC layer 1406 performs framing functions to user and control data,that include segmentation/concatenation and padding functionalities. TheRLC layer 1406 typically provides segmentation and retransmissionservices to a Radio Resource Control (RRC) layer for control data in thecontrol plane and to the application layer for user data in the userplane. The RLC layer 1406 typically performs segmentation/reassembly ofvariable length higher layer Protocol Data Units (PDUs) into/fromsmaller RLC PDUs.

Each RLC instance in the RLC layer 1406 can be configured by the RRClayer to operate in one of three modes: a transparent mode (TM), anunacknowledged mode (UM), and an acknowledged mode (AM). The three datatransfer modes indicate the mode in which the RLC is configured for alogical channel. The transparent and unacknowledged mode RLC entitiesare defined to be unidirectional whereas the acknowledged mode entitiesare bi-directional.

The MAC layer 1404 offers services to the RLC layer 1406 by means oflogical channels that are characterized by the type of data transmitted.The MAC layer 1404 maps and multiplexes logical channels to transportchannels. The MAC layer 1404 identifies the User Equipments (UEs) thatare on common channels. The MAC layer 1404 alsomultiplexes/demultiplexes higher layer PDUs into/from transport blocksdelivered to/from the physical layer 1402 on common transport channels.The MAC handles service multiplexing for common transport channels sinceit typically cannot be done in the physical layer 1402. When a commontransport channel carries data from dedicated type logical channels, anassociated MAC header includes an identification of the UE. The MAClayer 1404 also multiplexes and demultiplexes higher layer PDUsinto/from transport block sets delivered to or from the physical layer1402 on dedicated transport channels.

The physical layer 1402 couples to the MAC layer 1404 via transportchannels that carry signalling information and user data. The physicallayer 1402 offers services to the MAC layer 1404 via transport channelsthat can be characterized by how and with what characteristic data istransferred. The physical layer 1402 receives signalling and user dataover the radio link via physical channels. The physical layer 1402typically performs multiplexing and channel coding including CyclicRedundancy Check (CRC) calculation, forward-error correction (FEC), ratematching, interleaving transport channel data, and multiplexingtransport channel data, as well as other physical layer procedures suchas acquisition, access, page, and radio link establishment/failure. Thephysical layer 1402 may also be responsible for spreading andscrambling, modulation, measurements, transmit diversity, powerweighting, handover, compressed mode and power control.

A Common Traffic Channel (CTCH) is a unidirectional channel existing inthe downlink direction and can be used when transmitting informationeither to all terminals or a specific group of terminals. Data transfermodes typically use unidirectional common channels that do not have areverse-link channel set up.

On the left hand side of FIG. 14, application of the above layers areshown in a controlling RNC 1410. That is, the RNC 1410 receives MBMScontent 1412 together with MBMS control signals 1414. The MBMS content1412 is processed in the PDCP layer 1416. The packetised data isdelivered to a data plane 1418 of the RLC layer 1406 and the controlsignals are delivered respectively to a control plane 1420 of the RLClayer 1406. At the RLC layer 1406, RLC PDUs are constructed. To supportMBMS data and control, the MAC layer 1404 provides MBMS control channelsMCCH 1422 and MBMS traffic channels MTCH 1424 for a base station whichdelivers the service. The MBMS service is mapped and multiplexed fromlogical channels to transport channels in the MAC layer 1426. The MAClayer 1404 communicates with the physical layer 1428 for providingtransmission units to deliver the MBMS services to a mobile terminal UE1430.

The right hand side of FIG. 14 illustrates equivalent protocol layers atthe mobile terminal UE 1430. It is considered in this context that Txrepresents the transmission side of the physical link between the basestation and the mobile terminal UE 1430 while Rx represents the receivedside of channels at the mobile terminal UE 1430. The mobile terminal UE1430 implements MAC entities 1432 and provides MBMS control channels1434 and MBMS traffic channels 1436 similar to those for the controllingRNC 1410. The RLC layer 1438 deals with combining the packets which havebeen delivered by MAC entities. The RLC layer 1440 separates out thecontrol functionality at numeral 1442. As a final step, the PDCP layer1444 delivers the MBMS content 1446 to a user.

An example implementation may provide techniques for signal processingin a physical layer of a 3GPP protocol stack to support simultaneoustransmission of multiple content data with different BERs. The exampleimplementation may be implemented in any suitably arranged wireless MIMOsystem. The wireless communication of the MIMO system may conform to anycommunications standards.

FIG. 1 is a schematic block diagram broadly illustrating a wirelesscommunication system 100 in the example implementation. At a transmitter102, source data (at numeral 104) are encoded by source encoder units106 and interleaved by interleavers 108 to generate information data fortransmission. The information data are sent, e.g. in blocks, to channelencoding units 110 to perform channel coding and rate matching. Thecoded data are sent to multiplexing units 112 to multiplex the data intoa plurality of data streams. The multiplexed data streams are sent tomodulating and mapping units 114 to generate modulated data streams. Themodulated data streams are then transmitted by a plurality of transmitantennas 116 to a receiver 118.

At the receiver 118, the transmitted signals are received by a pluralityof receive antennas 120 and sent to a detecting unit 122 that detectsand separates the received signals into a plurality of detected datastreams. The detected data streams are sent to demodulating anddemapping units 124 for demodulation and demapping to generatedemodulated data streams. The demodulated data streams are sent tode-multiplexing units 126 to de-multiplex the data into a plurality ofdemultiplexed data streams. The demultiplexed data streams are sent intochannel decoding units 128 to recreate the information data. Therecreated information data are then de-interleaved by deinterleavingunits 130 and sent to source decoder units 132 to recover thetransmitted source data (at numeral 134).

FIG. 2 is a schematic block diagram illustrating the transmitter 102. Inthe example implementation, the transmitter 102 employs source/channelcoding schemes with various space-time processing techniques to provideunequal error protection for different content data. The input data(received at one or more input members at numeral 104), e.g.corresponding to MBMS services, are classified into different classes,namely higher priority input data and lower priority input data, basedon e.g. requirement of quality and/or data rate. For example, servicesor data that require low BERs are denoted as higher priority services ordata while on the other hand, services or data that can tolerate highBERs are denoted as lower priority services or data.

Classes may also be based on, but not limited to, data transmissionrates, quality of service (QoS) requirements, the number of transmissionantennas and transmission conditions.

The M input data streams (received at one or more input units at numeral104) with different priority are encoded by M source encoders 202, 204.The input streams may either be encoded using a unified coding scheme ordifferent coding schemes. The source encoders 202, 204 may be differentor the same as any encoder known to a person skilled in the art. Outputsof the M source encoders 202, 204 are sent to M interleaver units 206,208 to be interleaved. The interleaver units 206, 208 may be the same ordifferent.

Interleaved data from the interleaver units 206, 208 are input into alayer ST LDPC encoding unit 210. The layer ST LDPC encoding unit 210encodes the different priority data with different code rates and/ordifferent codeword lengths and maps the encoded data into a plurality(N_(T)) of transmit antenna streams. The data distributed to the N_(T)transmit antenna streams are modulated/symbol mapped using N_(T)modulation/symbol mapper unit 212, 214 before the data are sent to N_(T)transmit antennas 216, 218. The modulation/symbol mapper units 212, 214perform symbol mapping with respect to the data using various modulationschemes. The output data of the modulation/symbol mapper units 212, 214are transmitted from the transmitter 102 using the N_(T) transmitantennas 216, 218.

Based on the above, the example implementation encodes the M classes ofinformation data with different priorities by using a layered LDPCchannel coding code that comprises M layers. The channel coding codeencodes each layer with a different code rate and/or codeword lengthaccording to desired protection requirements. The channel coding codethen combines and maps systematic/information data and parity data fromthe M layers of encoded data to a plurality of transmission antennaswith different diversity gain in the space, time and/or frequencydomain.

To adapt to different BER requirements and the number of availabletransmission antennas for transmission, the selection of source encoders202, 204 and the design of the layer ST LDPC encoding unit 210 canchange accordingly to achieve the desired BER and/or capacity.Therefore, a controller 220 is provided to control the design of boththe layer LDPC coding and spatial mapping according to input QoSrequirements and transmission antenna information.

Thus, the transmitter 102 receives multiple input data sequences orstreams with each data stream assigned with a priority level or class.The priority level for each data stream is pre-determined based onservice quality requirements. The transmitter 102 segments the inputdata streams into a plurality of layers and the controller 220 of thetransmitter 102 assigns each layer with an error protection level. Acode rate, codeword length and a lowest acceptable error protectionlevel for each layer are determined as parameters and a parity checkmatrix is generated using the determined parameters. The input data arethen encoded using the generated parity check matrix.

FIG. 3 is a schematic block diagram illustrating the receiver 118. Atthe receiver 118, multiple data sequences or signals received at aplurality of (N_(R)) receiver antennas 302, 304 are first combined andthen applied to a MIMO detector 306 to recover the signals transmittedfrom the transmitter 102 (FIG. 2). The MIMO detector 306 can be operatedin a number of ways known to a person skilled in the art. An example isto use a linear estimator matrix constructed by using the channelinformation to effectively separate the plurality of transmitted signalsarriving at the receiver antennas 302, 304. Another example is to useoptimal techniques based on maximum likelihood (ML) or maximum aposteriori (MAP) algorithms. In addition, minimum mean square error(MMSE) and decision-feedback detection methods may be used for the MIMOdetector 306 to reduce system complexity.

The signals transmitted by the transmitter antennas 216, 218 (FIG. 2)are detected and split into N_(T) branches by the MIMO detector 306.Demapping and demodulation operations are performed on the split signalsin each branch using respective demodulation/demapping units 308, 310.After demapping and demodulation, the demodulated signals of the N_(T)branches are sent to a ST LDPC iterative decoding unit 312 to recreatethe M layers signals that correspond to the M classes of source encodedand interleaved data transmitted from the transmitter 102 (compare layerST LDPC encoding unit 210).

The M channel decoded data streams are output from the ST LDPC iterativedecoding unit 312 and deinterleaved using deinterleaver units 314, 316.The selection of the deinterleaver units 314, 316 is dependent on theinterleaver units 206, 208 (FIG. 2) used at the transmitter 102 (FIG.2). The deinterleaved data are sent to source decoder units 318, 320 torecreate the M classes of source data. The types of the decoder units318, 320 are dependent on the source encoder units 202, 204 (FIG. 2)used at the transmitter 102 (FIG. 2).

In the receiver 118, a controller unit 322 is provided to perform sourcedecoding and ST layered LDPC decoding according to desired QoSrequirements and transmission antennas information (compare thecontroller 220 of the transmitter 102).

FIG. 4 is a block diagram illustrating the layer ST LDPC encoding unit210. The layer ST LDPC encoding unit 210 comprises a layered LDPCencoder 402 and a spatial mapping unit 404. The input data (e.g. atnumerals 224, 226) are first encoded by the layered LDPC encoder 402.The layered LDPC encoder 402 comprises M designed layers and each layeris used for encoding each class of input data with a different code rateand different codeword length. After encoding, the M encoded data aresent to the spatial mapping unit 404. The spatial mapping unit 404performs multiplexing and/or demultiplexing operations on the M datastreams and then maps them into a plurality of transmit antenna streamsaccording to a designed mapping scheme.

FIG. 5 is a block diagram illustrating the ST LDPC iterative decodingunit 312. The ST LDPC iterative decoding unit 312 receives N_(T) inputdemodulated signals (e.g. at numerals 326, 328) and performs decodingoperations based on the encoding performed by the layered ST LDPCencoder unit 210 (FIG. 4) to output recreated M classes of transmitteddata. The ST LDPC iterative decoding unit 312 comprises a spatialmapping decoder 502 and a LDPC decoder in the form of M sum-productdecoders 504, 506, 508 for M layers. The input N_(T) data streams (e.g.,at numerals 326, 328) are input to the spatial mapping decoder 502 whichperforms an inverse of the operations of the spatial mapping unit 404(FIG. 4). Therefore, the N_(T) data streams are demultiplexed and/ormultiplexed to obtain M data streams corresponding to the designedmapping scheme used with reference to FIG. 4.

The decoded M streams are output from the spatial mapping decoder 502and input to the M sum-product decoders 504, 506, 508 such that eachsum-product decoder 506 decodes an input data stream with theinformation from the preceding sum-product decoder 504. In other words,an i th sum-product decoder receives an i th input data stream and theinformation from the results of the first to the (i−1)th sum-productdecoders. Based on the information, the i th sum-product decoder thenperforms iterative sum-product decoding to recreate an i th layer datathat corresponds to an i th class of data with i th priority. In theexample implementation, the order of decoding corresponds to the orderof encoding carried out in the layer ST LDPC encoding unit 210 (FIG. 4).

The example implementation described above may provide unequal errorprotection to different data with different priorities. In the followingdescription, more details of the layered ST LDPC encoding, decoding andspatial mapping techniques are provided.

FIG. 6 illustrates a layered structure of a parity check matrix 602 ofthe LDPC code used in the encoder 402 (FIG. 4). The LDPC code may berepresented by the low density parity check matrix H 602. The lowdensity parity check matrix H 602 is designed as a block-wise lowtriangular matrix. The matrix H 602 can be divided into layers (seenumeral 604) to implement layer coding for each layer data withdifferent quality and/or rate requirements e.g., different code rates,different codeword lengths and/or different check degrees.

As illustrated in FIG. 6, the parity check matrix H 602 is constructedwith M layers. For each i th layer, there is provided a sub-matrix H 606which can be a sub parity check matrix that performs sub-coding for eachi th layer information. The sub-matrixes are disposed diagonally in theparity check matrix H 602. There is also provided consecutive blocksC_(i,j) (j=i+1, . . . M) 610 which are correlated to other layers. Theblocks C_(i,j) disposed off-diagonal in the parity check matrix H 602. Avalid binary codeword b satisfies Hb^(T)=0. For each different layer,the corresponding sub matrix H_(i) can have a different number of rowsand columns from other sub-matrices. Therefore, the codeword b is alsoconstructed with M layers. Each layer of the codeword b can have adifferent length of codeword and the code rates may be different fordifferent layers. In the example implementation, a matrix C_(i,j)represents correlated information to link layers i and j.

Based on the property of LDPC codes, bits (or variable nodes) of thecodeword b with higher degrees are better protected. In the exampleimplementation, the connection matrices C_(i,j) (j=i+1, . . . , M) maybe regarded as elements that add degrees to the bits in the i th layersuch that the bits mapped to the i th layer may be provided with bettererror protection as compared to the bits mapped to the (i+1)th layer.Therefore, layers from high to low (i.e., corresponding to mapped bitsfrom high priority to low priority) are arranged from left to right inthe parity check matrix H 602. In addition, the data nodes of higherlayer data may have higher connection degrees due to the quasi lowtriangular structure of the parity check matrix H 602.

In the example implementation, the bits from M classes are mapped to(i.e., encoded by) M layers respectively and the order of the priorities(from highest to lowest) are the same as the order of layers (i.e., fromLayer 1 to Layer M) so as to employ the unequal error protectionproperty of the described layered LDPC code. On the other hand, the coderates resulting from each sub parity check matrix H are increasingaccording to the order of layers such that different bits of differentpriority (e.g., from highest to lowest) are encoded with different coderates (e.g., from lowest to highest) and thus, may achieve differenterror protection levels (e.g., from highest to lowest). The codewordlength for each layer may be adjusted according to various errorprobability and/or transmission rate requirements.

Assume that the codeword length of an i th layer is n_(i) and the numberof parity check bits is r_(i). That is, the sub parity-check matrixH_(i) is a matrix with r_(i) rows and n_(i) columns. For each layer, a(n_(i)−r_(i))×1 vector of input information bits s_(i) is encoded to an_(i)×1 codeword. The encoding for the first layer is shown below. Byperforming transportation,W ₁ H ₁=(P ₁ I)  eq.(1)

where matrix W₁ is a r₁×r₁ full rank matrix performing transportation onthe matrix H₁, P₁ is a r₁×(n₁−r₁) matrix and the matrix I is the r₁×r₁identity matrix. In the example implementation, transportation relatesto a matrix representation of linear transportation performed on H₁.Transportation is performed such that a generator matrix P₁ may beobtained for use in coding. Such operations are used for linear blockcoding. It will be appreciated by a person skilled in the art that LDPCis a form of linear block coding. Based on the above, the codeword b₁for the 1^(st) layer is formed byb ₁=(s ₁(s ₁ P _(i) ^(T)))  eq.(2)

Therefore, the linear block coding is expressed by the parity checkmatrix H₁ and the generator matrix P₁ is used for encoding s₁ togenerate parity bits.

For the i th layer, similarly, by performing transportation,W _(i) H _(i)=(P _(i) I)  eq.(3)and the codeword for the i th layer is formed by

$\begin{matrix}{b_{i} = \left( {s_{i}\left( {{s_{i}P_{i}^{T}} + {\sum\limits_{j < i}{b_{j}C_{j,i}^{T}W_{i}^{T}}}} \right)} \right)} & {{eq}.\mspace{14mu}(4)}\end{matrix}$

During the encoding for the i th layer, parts of information of previouslayers are injected into the codeword of the i th layer by connectionmatrices C_(j,i) (j=1, . . . , i−1).

In the example implementation, decoding for each layer is performed by asum-product method in the order of layers (i.e., from Layer 1 to LayerM.) That is, higher layer data with higher error protection is decodedfirst to improve decoding performance. The parity check equation for thefirst layer isH ₁ b ₁ ^(T)=0  eq.(5)

Eq. (5) is satisfied when the iterations are terminated for the firstlayer decoding. Consequently, the parity check equation for an i thlayer is

$\begin{matrix}{{{\sum\limits_{j < i}{C_{j,i}b_{j}^{T}}} + {H_{i}b_{i}^{T}}} = 0} & {{eq}.\mspace{14mu}(6)}\end{matrix}$

Eq. (6) is satisfied when the iterations are terminated for the i thlayer decoding.

During LDPC decoding, the so-called belief propagation is terminatedwhen all parity check equations are satisfied. In the exampleimplementation, the belief propagation is terminated when the paritycheck equations involving only detected layers and the layer to bedetected are satisfied. In other words, the belief propagation isstopped for i th layer decoding when the 1^(st) to i th parity checkequations are satisfied.

In the example implementation, in addition to using belief propagation,the decoding procedure is also iterative among the layers. An iterativedecoding among the layers may improve the decoding performancegradually. In each such iteration, for an i th layer decoding, messagepassing is performed from higher layers (i.e., received from 1st toi−1th layers) for verifying the parity check equation. Message passingis also performed from lower layers (i.e., sent to the i+1th to M thlayers) for computing the log-likelihood ratio (LLR). The messagepassing in different directions (see e.g. 510, 512 in FIG. 5) amonglayers may provide faster and more reliable decoding in the exampleimplementation. The decoding procedure is terminated either when all theinvolved parity check equations are satisfied (i.e., belief propagationterminated) or when convergence of the LLRs is achieved.

FIG. 7 is a schematic diagram illustrating a sample layered LDPC code.For description purposes, it is assumed that there are two classes ofinformation bits s₁ and s₂. Bits of the first class s₁ have higherpriority and require better error protection and bits of the secondclass s₂ have lower priority and require less robust protection. Thestructure 702 of the sample two-layer LDPC code is illustrated in FIG.7. The matrix C 704 is a connection matrix between a first layer 706 anda second layer 708. The bits of the first class s₁ are encoded by thefirst layer 706 of the LDPC code and the bits of the second class s₂ areencoded by the second layer 708 of the LDPC code. Thus, the codeword uof the first layer (compare eq. (2)) is obtained asu=(s ₁(s ₁ P ₁ ^(T)))  eq.(7)

The codeword v of the second layer (compare eq. (4)) is obtained asv=(s ₂(s ₂ P ₂ ^(T) +uC ^(T) W ₂ ^(T)))  eq.(8)

FIG. 8( a) is an example parity check matrix 800 of the LDPC code ofFIG. 7. Since codeword length is related to the number of columns, thecodeword length of a first layer 802 is 4 bits. Since the number ofparity bits is related to the number of rows, the number of parity bitsfor the first layer 802 is 3 bits. Therefore, based on the codewordlength and the number of parity bits, the number of information bits forthe first layer codeword is 1 bit. Consequently, the code rate for thefirst layer 802 is ¼. Using the same reasoning, the codeword length fora second layer 804 is 4 bits while the code rate for the second layer804 is ½. Therefore, the first layer codeword is 4 bits comprising 1 bitfor information bits and 3 bits for parity bits. The second layercodeword is 4 bits comprising 2 bits for information bits and 2 bits forparity bits. That is,

$\begin{matrix}{\underset{{information}\mspace{14mu}{bit}}{u = {\text{(}\underset{\_}{u_{1}}}}\mspace{20mu}\underset{{Parity}\mspace{14mu}{bits}}{\underset{\_}{u_{2}\mspace{20mu} u_{3}\mspace{20mu} u_{4}}\text{)}}} & {{eq}.\mspace{14mu}(9)} \\{\underset{{information}\mspace{14mu}{bits}}{{v = {\text{(}\underset{\_}{v_{1}\mspace{20mu} v_{2}}}}\mspace{20mu}}\underset{{Parity}\mspace{14mu}{bits}}{\underset{\_}{v_{3}\mspace{20mu} v_{4}}}\text{)}} & {{eq}.\mspace{14mu}(10)}\end{matrix}$

FIG. 8( b) is another example parity check matrix 806 of the LDPC codeof FIG. 7. In this example, the code rate for a first layer 808 is ¼ andthe code rate for a second layer 810 is ½. The codeword length of thefirst layer 808 is 8 bits and the codeword length of the second layer810 is 4 bits. Therefore, the first layer codeword is 8 bits comprising2 bits for information bits and 6 bits for parity bits. The second layercodeword is 4 bits comprising 2 bits for information bits and 2 bits forparity bits. That is,

$\begin{matrix}{\underset{{information}\mspace{14mu}{bits}}{u = {\text{(}\underset{\_}{u_{1}u_{2}}}}\mspace{20mu}\underset{{Parity}\mspace{14mu}{bits}}{\underset{\_}{u_{3}\mspace{20mu} u_{4}\mspace{20mu} u_{5}\mspace{20mu} u_{6}\mspace{20mu} u_{7}\mspace{20mu} u_{8}}\text{)}}} & {{eq}.\mspace{14mu}(11)} \\{\underset{{information}\mspace{14mu}{bits}}{{v = {\text{(}\underset{\_}{v_{1}\mspace{20mu} v_{2}}}}\mspace{20mu}}\underset{{Parity}\mspace{14mu}{bits}}{\underset{\_}{v_{3}\mspace{20mu} v_{4}}}\text{)}} & {{eq}.\mspace{14mu}(12)}\end{matrix}$

In the above description, a connection matrix is designed to add degreeto a higher layer, thus improving the protection for higher layer data.Therefore, the construction of the parity check matrix, comprising subcodes or sub parity-check matrices and connection matrices, may be usedto control unequal error protection.

In the example of FIG. 7, generation of the parity check matrix 702 forthe two-layer LDPC code is as follows: A regular LDPC sub-code matrixH_(i) (r_(i)×n_(i)) is generated, taking into account the lowest errorprotection level of layer i. Parameters such as code rates, codewordlengths, and degrees are selected according to the error probabilityrequirement of each i th layer data. The parameters may be the same ordifferent for different layers. A connection matrix between layersC_(i,j) (m×l matrix, m=r_(j), l=n_(i)) is then generated. The connectionmatrix is used for injecting information of one of the input datastreams (e.g., encoded using layer 1 of FIG. 7) into the encoding ofanother one of the input streams (e.g., encoded using layer 2 of FIG.7).

The assigned error protection level and the lowest error protectionlevel of layer i are compared. If sub-code H_(i) (compare 710) andsub-code H_(j) (compare 712) can provide respective required protectionfor the respective layers of the example in FIG. 7, the connectionmatrix C_(i,j) (compare 704) is generated as a zero matrix. Thus, theconnection matrix C_(i,j) has no effect with respect to the first layer(compare 706) and the second layer (compare 708). On the other hand, ifsub-code H_(i) (compare 710) and sub-code H_(j) (compare 712) cannotprovide respective required protection for the respective layers of theexample in FIG. 7, the connection matrix C_(i,j) (compare 704) isgenerated as a non-zero matrix.

In other words, the lowest error or parity check protection level basedon the sub-parity check matrix 710 for the associated input data stream(e.g. encoded using sub-parity check matrix 710 of FIG. 7) is comparedto an assigned error or parity check protection level for said inputdata stream. If the assigned error protection level is equal to (orlower than) the lowest error protection level based on the sub-paritycheck matrix, the connection matrix C_(i,j) is a zero matrix. If theassigned error protection level is higher than the lowest errorprotection level, the connection matrix C_(i,j) is a non-zero matrix.Thus, if the connection matrix C_(i,j) is a zero matrix, the protectionlevels provided by the respective sub-codes of the parity check matrixare the lowest error protection levels.

If the first layer requires more protection, a non-zero C_(i,j) can adddegrees to the sub-code H_(i) to provide better protection for the firstlayer data. To obtain a suitable LDPC code, the parity check matrix hasno cycle in a factor graph. That is, the parity check matrix is designedsuch that there are no pairs of rows sharing the element “1” in aparticular pair of columns. Therefore, the connection matrix C_(i,j) canbe designed as follows.

To add one degree to sub-code H_(i) if the assigned error protectionlevel of layer i is one level higher than the lowest error protectionlevel, the connection matrix C_(i,j) can be generated asC ⁽¹⁾ =[I _(m) |I _(m) | . . . |I _(m)]  eq.(13)

Eq. (13) is the concatenation of

$\left\lfloor \frac{l}{m} \right\rfloor + 1$times identity matrix I_(m). By denotingC ₁ =C ⁽¹⁾[:,1:l]  eq.(14)

the connection matrix may be selected as C′_(i,j)=C₁.

To add two degrees to sub-code H_(i) if the assigned error protectionlevel of layer i is two levels higher than the lowest error protectionlevel, the connection matrix C_(i,j) can be generated as

$\begin{matrix}{C^{(2)} = \left\lbrack {{I_{m}^{(2)}{I_{m}^{(3)}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({2{\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack} & {{eq}.\mspace{14mu}(15)}\end{matrix}$

where I_(m) ^((t)) denotes left shifting by t columns for each I_(m).

By denotingC ₂ =C ⁽²⁾[:,1:l]  eq.(16)

the connection matrix can be selected as C′_(i,j)=C₁+C₂.

To add k degrees (where k is much smaller than m) to sub-code H_(i) ifthe assigned error protection level of layer i is k levels higher thanthe lowest error protection level, the connection matrix C_(i,j) can begenerated as:

$\begin{matrix}{{C^{(k)} = \left\lbrack {{I_{m}^{({2{({k - 1})}})}{I_{m}^{({{2{({k - 1})}} + 1})}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({{2{({k - 1})}} + {\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack},} & {{eq}.\mspace{14mu}(17)}\end{matrix}$

where I_(m) ^((j)) denotes left shifting by j columns for each I_(m).

By denotingC _(k) =C ^((k))[:,1:l]  eq.(18)

the connection matrix can be selected as C′_(i,j)=C₁+C₂+ . . . +C_(k).

As a final step, the connection matrix C_(i,j) is obtained by downshifting by (i−1) rows for the C′_(i,j).

FIGS. 9( a) to 9(c) illustrate an example parity check matrix 900implementing the above connection matrix generation rule. The two-layerparity check matrix 900 is provided with a first layer 902 and a secondlayer 904. For the first layer 902, the code rate is ⅓ and thecorresponding sub-code H₁ 906 is a 8×12 matrix having a column degree of3 degrees. For the second layer 904, the code rate is ½, and thecorresponding sub-code H₂ 908 is a 6×12 matrix with a column degree as 2degrees. The connection matrix C 910 is a 6×12 zero matrix.

FIG. 9( a) shows the connection matrix C 910 being a zero matrix. Thus,the respective protection levels provided by the sub-code H₁ 906 and thesub-code H₂ 908 are the lowest protection levels for the respectivefirst layer 902 and the second layer 904.

For adding one degree to the first layer 902 to provide betterprotection, the parity check matrix H 900 can be changed as illustratedin FIG. 9( b). The connection matrix C 910 is changed to a non-zeromatrix C 912. The non-zero matrix C 912 is obtained from the matrix C910 based on eq(13) and eq(14).

For adding two degrees to the first layer 902 to provide betterprotection, the parity check matrix H 900 can be changed illustrated inFIG. 9( c). The connection matrix C 912 is changed to a connectionmatrix C 914. The connection matrix C 914 contains more “1” elements ascompared to the connection matrix C 912. The connection matrix C 914 isobtained from the connection matrix C 912 based on eq(15) and eq(16).

It will be appreciated by a person skilled in the art that, in order tobe a sparse matrix; the parity check matrix 900 may be very large inpractical applications.

FIG. 10 is a block diagram illustrating the modulation/symbol mappingunit 212 (FIG. 2). The other modulation/symbol mapping units 214function substantially identical to the modulation/symbol mapping unit212. Input data at numeral 228 are modulated by a modulator 1002utilizing a modulation scheme that modulates the input data in terms ofthe in-phase and quadrature phase components to transmit differentsubsets of the data. An antenna processor 1004 is provided to arrangethe I-branch 1006 and Q-branch 1008 data to the antenna transmissionstream at numeral 1010. The antenna processor 1004 may provideorthogonal (or near-orthogonal) signal spreading for transmit diversityin wireless transmissions.

It will be appreciated by a person skilled in the art that demodulationand demapping operations performed by the demodulation/demapping units308, 310 (FIG. 3) are inverse processing of the modulation and mappingoperations described above.

FIGS. 11( a) to 11(c) are I-branch/Q-branch tables 1102, 1104, 1106,1108, 1110, 1112, 1114 and 1116 for illustrating examples of logicalsignal mapping and combining of systematic/information and parity data.Spatial mapping can map M layer encoded data into N_(T) (the number ofantennas) transmission streams. Using the signal mapping formatsdescribed below, the bits from each layer data are distributed in asmany symbols as possible to achieve higher frequency diversity.

Using the modulation/symbol mapping unit 212 (FIG. 10), signal mappingformats are provided to map M classes of information bits to N_(T)transmission streams with Quadrature Phase Shift Keying (QPSK)modulation. In FIG. 11( a), a signal mapping format is used inassociation with the LDPC codes of FIG. 8( a) to map two (M=2) classesof information bits to (N_(T)=2) two antenna transmission streams. InFIG. 11( b), another signal mapping format is used in association withthe LDPC codes of FIG. 8( b) to map two (M=2) classes of informationbits to (N_(T)=2) two antenna transmission streams. In FIG. 11( c), yetanother signal mapping format is used in association with the LDPC codesof FIG. 8( b) to map two (M=2) classes of information bits to (N_(T)=4)four antenna transmission streams.

Using the signal mapping formats illustrated using FIG. 11( a) and FIG.11( b), information bits and some parity bits of class 1 and informationbits of class 2 are mapped to a first antenna transmission stream(compare Table 1102 with elements of eq. (9) and (10) and Table 1106with elements of eq. (11) and (12)). The remaining parity bits of class1 and the parity bits of class 2 are mapped to a second antennatransmission stream (compare Table 1104 with elements of eq. (9) and(10) and Table 1108 with elements of eq. (11) and (12)). By implementingthe signal mapping formats, the two classes of bits are distributed inevery symbol to achieve higher frequency diversity for OrthogonalFrequency Division Multiplexing (OFDM) transmission. As illustrated inthe above examples, the first class data with higher priority areprovided better error protection (e.g., more parity bits) and in theexample illustrated in FIG. 11(a), the second class data with lowerpriority achieve a higher transmission rate (i.e., transmission ofv₁(1), v₂(1) to v₁(4), v₂(4) in one transmission). The transmissions ofsubsequent codewords are according to the above signal mapping formats.

Referring to the signal mapping format illustrated in FIG. 11( c),information bits and some parity bits of the first layer and informationbits and parity bits of the second layer are mapped to symbols streamsto be transmitted by the first and second antennas. The remaining paritybits of the first layer and information bits and parity bits of thesecond layer are mapped to symbol streams to be transmitted by the thirdand fourth antennas. (Compare Tables 1110, 1112, 1114, 1116 withelements of eq. (11) and (12). For description purposes, the notationsin FIGS. 11( a) to (c) are given as: u′_(i)(k) or v′_(i)(k), where i isthe i-th digit in a sub codeword from one layer and k is the index of asub codeword. Using the illustrated signal mapping formats, coded bitsfrom two layers are distributed in every symbol to achieve higherfrequency diversity for OFDM transmission. By comparing the signalmapping format for four transmission antennas (N_(T)=4) illustrated inFIG. 11( c) and the signal mapping formats for two transmission antennas(N_(T)=2) illustrated in FIGS. 11( a) and (b), it can be shown that thesignal mapping formats follow the same principle. The principle is tospread signals from each layer to available transmission antennas toachieve spatial diversity and to available sub-carriers in the case ofOFDM transmission to achieve frequency diversity.

As shown in FIGS. 11( a) to (c), the data with higher priority areprovided better error protection and the data with lower priority canachieve higher transmission rates.

FIG. 12 is a flowchart 1200 illustrating a method for data transmissionin a multiple input multiple output (MIMO) system. At step 1202,multiple input data streams are received. At step 1204, low densityparity check (LDPC) encoding of the input data streams is performedutilising a parity check matrix wherein the parity check matrixcomprises a plurality of sub-parity check matrices for encodingrespective associated ones of the input data streams and generating oneor more connection matrices, each connection matrix for injectinginformation of one of the input data streams into the encoding ofanother one of the input data streams, and wherein said each connectionmatrix is a zero matrix if a lowest parity check protection level basedon the sub-parity check matrix for said one of the input data streams isequal to or lower than an assigned parity check protection level forsaid one input data stream, and a non zero matrix otherwise. At step1206, space time encoding is performed for transmitting the LDPC encodedinput data streams over a plurality of antennas.

FIG. 13 is a flowchart 1300 illustrating a method for processingreceived data streams in a multiple input multiple output (MIMO) system.At step 1302, data streams are received via a plurality of receiveantennas. At step 1304, space time decoding is performed on the receiveddata streams. At step 1306, low density parity check (LDPC) decoding isperformed on the received data streams utilising a parity check matrixwherein the parity check matrix comprises a plurality of sub-paritycheck matrices for decoding respective associated ones of the receiveddata streams and using one or more connection matrices, each connectionmatrix for providing information of one of the received data streams fordecoding of another one of the received data streams, and wherein saideach connection matrix is a zero matrix if a lowest parity checkprotection level based on the sub-parity check matrix for said one ofthe input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.

The above example implementation may provide for transmitting andreceiving multiple content data (e.g., MBMS services) with differenterror protections in wireless communication systems. The exampleimplementation may be used for a physical layer transmission forbroadcast and multicast services. Unequal error protection forsimultaneous different MBMS delivery may be provided by employing theLDPC coding together with space-time processing, and may be implementedin any wireless MIMO system. The requirements on quality of errorprotection and data rate may be achieved by using a layer structure ofLDPC and various space-time mapping schemes for different priority data.

The above example implementation may provide a combined system forsupporting simultaneously various error protection requirements in highrate data transmission systems (e.g., 3GPP MBMS) at a high systemflexibility and low implementation complexity. The arrangement of thetransmission rate and protection robustness of the services may bejointly controlled by a Layer LDPC encoder which may assign various coderates, codeword lengths and check degrees to different data withdifferent priorities and a space-time mapper which may provide differentspace-time processing for different data.

It has been recognised that various channel coding schemes andspace-time processing techniques may provide different levels ofprotection to the distortion of the transmitted data due to the fadingand the noise, and may achieve different levels of data transmissionrate. By using coding schemes and space-time processing techniques, amore robust transmission may be provided to higher priority data while ahigher transmission rate may be provided to lower priority data. Inaddition, by using the above example implementation, further protectionmay be achieved while capacity may be increased at the same time.

Furthermore, different protection for service/data with differentpriorities may be supported by designing the layer structure of the LDPCcode and the space-time mapping scheme. In the above exampleimplementation, different code rates and/or codeword lengths fordifferent data may be achieved by designing a layered LDPC parity checkmatrix (where a layer corresponds to a priority level). In addition,higher diversity in the space, time and frequency domains may beachieved via distributed signal mapping. Space time mapping in thedescribed example implementation may be performed for data withdifferent priority by multiplexing/demultiplexing and mapping to realisevarious space-time coding for different information data.

In the above example implementation, different content data withdifferent priority (or different services with different errorprobability requirements) are processed in accordance with a layeredLDPC channel coding scheme and may have different code rates and/ordifferent codeword lengths, for each layer corresponding to differentpriority data. The information and parity data may bemultiplexed/demultiplexed and mapped to a plurality of antennatransmission streams. The multiplexing and mapping may control thespace-time coding structure that is applied to different content dataand hence, may provide different protection and/or transmission ratesfor different content data.

It will be appreciated by a person skilled in the art that numerousvariations and/or modifications may be made to the present invention asshown in the specific embodiments without departing from the spirit orscope of the invention as broadly described. The present embodimentsare, therefore, to be considered in all respects to be illustrative andnot restrictive.

1. A method for data transmission in a multiple input multiple output(MIMO) system, the method comprising: receiving multiple input datastreams; performing low density parity check (LDPC) encoding of theinput data streams utilising a parity check matrix, wherein the paritycheck matrix comprises a plurality of sub-parity check matrices forencoding respective associated ones of the input data streams andperforming space time encoding for transmitting the LDPC encoded inputdata streams over a plurality of antennas; wherein the performing of theLDPC encoding of the input data streams comprises generating one or moreconnection matrices, each connection matrix for injecting information ofone of the input data streams into the encoding of another one of theinput data streams; and wherein said each connection matrix is a zeromatrix if a lowest parity check protection level based on the sub-paritycheck matrix for said one of the input data streams is equal to or lowerthan an assigned parity check protection level for said one input datastream, and a non zero matrix otherwise.
 2. The method as claimed inclaim 1, wherein the multiple input data streams comprise M inputstreams of M different classes, and the parity check matrix has Mlayers, each layer of the parity check matrix corresponding to one ofthe M classes.
 3. The method as claimed in claim 2, wherein eachconnection matrix links two of the M layers such that the correlationinformation between the two layers is injected during the LDPC encoding.4. The method as claimed in claim 1, wherein for each connection matrix,if the assigned parity check protection level is k levels higher thanthe lowest parity check protection level, said each connection matrix isgenerated using the steps of: providing a matrix${C^{(k)} = \left\lbrack {{I_{m}^{({2{({k - 1})}})}{I_{m}^{({{2{({k - 1})}} + 1})}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({{2{({k - 1})}} + {\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack},$where m=r_(i), l=n_(i), r_(i) is a number of parity check bits of saidone of the input data streams and n_(i) is a codeword length of said oneof the input data streams and I_(m) ^((t)) is a t-column left shiftoperation of an identity matrix I_(m); denoting C_(k)=C^((k))[:,1:l];denoting C′_(i,j)=C₁+C₂+ . . . +C_(k); and downshifting C′_(i,j) by(i−1) rows to obtain said each connection matrix.
 5. The method asclaimed in claim 1, wherein the parity check matrix is a block-wise lowtriangular matrix, with the sub-parity check matrices located as blocksalong a main diagonal of the parity check matrix.
 6. The method asclaimed in claim 5, wherein the connection matrices are located asblocks below the main diagonal of the parity check matrix, with blocksabove the main diagonal being zero matrices.
 7. A transmitter in amultiple input multiple output (MIMO) system, the transmittercomprising: one or more input units for receiving multiple input datastreams; a low density parity check (LDPC) encoder; and a spatialmapping unit; wherein the LDPC encoder performs LDPC encoding of theinput data streams utilising a parity check matrix and the parity checkmatrix comprises a plurality of sub-parity check matrices for encodingrespective associated ones of the input data streams and the spatialmapping unit performs space time encoding for transmitting the LDPCencoded input data streams over a plurality of antennas; wherein for theperforming of the LDPC encoding of the input data streams, the LDPCencoder generates one or more connection matrices, each connectionmatrix for injecting information of one of the input data streams intothe encoding of another one of the input data streams; and wherein saideach connection matrix is a zero matrix if a lowest parity checkprotection level based on the sub-parity check matrix for said one ofthe input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.
 8. The transmitter as claimed in claim 7, wherein themultiple input data streams comprise M input streams of M differentclasses, and the parity check matrix has M layers, each layer of theparity check matrix corresponding to one of the M classes.
 9. Thetransmitter as claimed in claim 8, wherein each connection matrix linkstwo of the M layers such that the correlation information between thetwo layers is included during the LDPC encoding.
 10. The transmitter asclaimed in claim 7, wherein for each connection matrix, if the assignedparity check protection level is assigned to be k levels higher than thelowest parity check protection level, the LDPC encoder generates saideach connection matrix using the steps of: providing a matrix${C^{(k)} = \left\lbrack {{I_{m}^{({2{({k - 1})}})}{I_{m}^{({{2{({k - 1})}} + 1})}}\mspace{14mu}\ldots}\mspace{14mu} ❘I_{m}^{({{2{({k - 1})}} + {\lfloor\frac{l}{m}\rfloor}})}} \right\rbrack},$where m=r_(i), l=n_(i), r_(i) is a number of parity check bits of saidone of the input data streams and n_(i) is a codeword length of said oneof the input data streams and I_(m) ^((t)) is a t-column left shiftoperation of an identity matrix I_(m); denoting C_(k)=C^((k))[:,1:l];denoting C′_(i,j)=C₁+C₂+ . . . +C_(k); and downshifting C′_(i,j) by(i−1) rows to obtain said each connection matrix.
 11. The transmitter asclaimed in claim 7, wherein the parity check matrix is a block-wise lowtriangular matrix, with the sub-parity check matrices located as blocksalong a main diagonal of the parity check matrix.
 12. The transmitter asclaimed in claim 11, wherein the connection matrices are located asblocks below the main diagonal of the parity check matrix, with blocksabove the main diagonal being zero matrices.
 13. A computer readabledata storage medium having stored thereon computer code means forinstructing a multiple input multiple output (MIMO) system to execute amethod for data transmission in the MIMO system, the method comprising:receiving multiple input data streams; performing low density paritycheck (LDPC) encoding of the input data streams utilising a parity checkmatrix, wherein the parity check matrix comprises a plurality ofsub-parity check matrices for encoding respective associated ones of theinput data streams; and performing space time encoding for transmittingthe LDPC encoded input data streams over a plurality of antennas;wherein the performing of the LDPC encoding of the input data streamscomprises generating one or more connection matrices, each connectionmatrix for injecting information of one of the input data streams intothe encoding of another one of the input data streams; and wherein saideach connection matrix is a zero matrix if a lowest parity checkprotection level based on the sub-parity check matrix for said one ofthe input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.
 14. A method for processing received data streams in amultiple input multiple output (MIMO) system, the method comprising:receiving data streams via a plurality of receive antennas; performingspace time decoding on the received data streams; and performing lowdensity parity check (LDPC) decoding of the received data streamsutilising a parity check matrix for decoding the data streams, whereinthe parity check matrix comprises a plurality of sub-parity checkmatrices for decoding respective associated ones of the received datastreams; wherein the performing of the LDPC decoding of the receiveddata streams comprises using one or more connection matrices, eachconnection matrix for providing information of one of the received datastreams for decoding of another one of the received data streams, andwherein said each connection matrix is a zero matrix if a lowest paritycheck protection level based on the sub-parity check matrix for said oneof the input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.
 15. The method as claimed in claim 14, furthercomprising using a sum-product method for decoding the received datastreams.
 16. A receiver in a multiple input multiple output (MIMO)system, the receiver comprising: a plurality of receive antennas forreceiving data streams; a spatial mapping decoder for performing spacetime decoding on the received data streams; and a low density paritycheck (LDPC) decoder for decoding the received data streams utilising aparity check matrix for decoding the data streams, wherein the paritycheck matrix comprises a plurality of sub-parity check matrices fordecoding respective associated ones of the received data streams;wherein for the performing of the LDPC decoding of the received datastreams, the LDPC decoder uses one or more connection matrices, eachconnection matrix for providing information of one of the received datastreams for decoding of another one of the received data streams; andwherein said each connection matrix is a zero matrix if a lowest paritycheck protection level based on the sub-parity check matrix for said oneof the input data streams is equal to or lower than an assigned paritycheck protection level for said one input data stream, and a non zeromatrix otherwise.
 17. The receiver as claimed in claim 16, wherein theLDPC decoder comprises one or more sum-product decoders.
 18. A computerreadable data storage medium having stored thereon computer code meansfor instructing a multiple input multiple output (MIMO) system toexecute a method for processing received data streams in the MIMOsystem, the method comprising: receiving data streams via a plurality ofreceive antennas; performing space time decoding on the received datastreams; and performing low density parity check (LDPC) decoding of thereceived data streams utilising a parity check matrix for decoding thedata streams, wherein the parity check matrix comprises a plurality ofsub-parity check matrices for decoding respective associated ones of thereceived data streams; wherein the performing of the LDPC decoding ofthe received data streams comprises using one or more connectionmatrices, each connection matrix for providing information of one of thereceived data streams for decoding of another one of the received datastreams; and wherein said each connection matrix is a zero matrix if alowest parity check protection level based on the sub-parity checkmatrix for said one of the input data streams is equal to or lower thanan assigned parity check protection level for said one input datastream, and a non zero matrix otherwise.